home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / ARMLINUX / MAIL / 9701 / 000020_owner-linux-arm…r.rutgers.edu _Wed Jan 22 09:26:57 1997.msg < prev    next >
Internet Message Format  |  1998-01-25  |  2KB

  1. Return-Path: <owner-linux-arm-outgoing@vger.rutgers.edu>
  2. Received: from nic.funet.fi (nic.funet.fi [128.214.248.6]) by odie.barnet.ac.uk (8.8.2/8.8.0) with ESMTP id JAA32031 for <willy@odie.fluff.org>; Wed, 22 Jan 1997 09:26:56 GMT
  3. Received: from vger.rutgers.edu ([128.6.190.2]) by nic.funet.fi with ESMTP id <65747-26991>; Wed, 22 Jan 1997 11:26:41 +0200
  4. Received: by vger.rutgers.edu id <212997-2093>; Wed, 22 Jan 1997 04:15:54 -0500
  5. From: Matthew Wilcox <willy@odie.fluff.org>
  6. Message-Id: <199701220925.JAA32008@odie.barnet.ac.uk>
  7. Subject: Unaligned accesses
  8. To: John.Tytgat@barco.com
  9. Date:     Wed, 22 Jan 1997 09:25:02 +0000 (GMT)
  10. Cc: linux-arm@vger.rutgers.edu
  11. In-Reply-To: <199701201340.NAA23883@spider> from "John Tytgat" at Jan 20, 97 01:40:17 pm
  12. X-Mailer: ELM [version 2.4 PL25]
  13. MIME-Version: 1.0
  14. Content-Type: text/plain; charset=US-ASCII
  15. Content-Transfer-Encoding: 7bit
  16. Sender: owner-linux-arm@vger.rutgers.edu
  17. Precedence: bulk
  18. Status: RO
  19.  
  20. > But on an old ARM, you will get `bar = 0x04030201'.  The reason is that
  21. > the dereference of `bar' compiles to an LDR instruction.  In general, the
  22. > compiler can't know the alignment at compile-time, so there's not a lot
  23. > else it *can* do.  Old ARM machines silently discard the low two address
  24. > bits when you ask them to do a word access.  This differs, as I said
  25. > before, from the Intel (where you get the correct access performed, albeit
  26. > more slowly) and the Alpha/SPARC/etc (where you get a fault, and your OS
  27. > has to patch up in software).
  28.  
  29. To be pedantic.. you will get 'bar = 0x01040302'.  It's the MEMC's fault
  30. rather than the ARM's fault - it could pull the ABRT line high and allow
  31. the OS to patch up in software.  Or it could do two memory accesses and
  32. give the word that you wanted.  But it does neither of these things.  And
  33. it's a bit late to demand a new version of the MEMC from ARMltd!